package com.atguigu.network;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class Demo02TCPClient {

    public static void main(String[] args) throws IOException {

        // 1、创建 Socket 对象，代表双方的一次交互
        Socket socket = new Socket("127.0.0.1", 8888);

        // 2、向服务器端发送数据
        // [1]获取输出流对象
        OutputStream outputStream = socket.getOutputStream();

        // [2]将数据写入到输出流
        outputStream.write("谁还不是个宝宝了[来自客户端]".getBytes());

        // [3]给流的末尾附加末尾标记，否则服务器端读取输入流就读取不到 -1
        socket.shutdownOutput();

        // 3、接收服务器返回的响应结果数据
        // [1]获取输入流对象
        InputStream inputStream = socket.getInputStream();

        // [2]从输入流中读取服务器端返回的响应结果
        StringBuffer stringBuffer = new StringBuffer();
        int len = 0;
        byte[] bytes = new byte[1024];

        while ((len = inputStream.read(bytes)) != -1) {
            String data = new String(bytes, 0, len);
            stringBuffer.append(data);
        }

        // [3]打印服务器端返回的数据
        String response = stringBuffer.toString();
        System.out.println("response = " + response);

        // 4、关闭 Socket
        socket.close();

    }

}
